Энтузиаст запустил Alpaca на Эльбрусе

Энтузиаст запустил Alpaca на Эльбрусе

Энтузиаст Алексей Михайлюк запустил на Эльбрусе чат-бот Alpaca(аналог ChatGPT). В отличие от ChatGPT и большинства других чат-ботов, доступных сегодня, Alpaca может работать на домашнем компьютере и ее можно дообучать.

Alpaca была создана исследовательской группой Стэнфордского университета и во многом похожа на ChatGPT, но построена на языковой модели с открытым кодом LLaMA. В настоящее время существует три основных варианта Alpaca: 7B, 13B и 30B. Скорость Alpaca в основном ограничена компьютером, на котором она работает. На современном компьютере с многоядерным процессором и большим количеством оперативной памяти, можно получить хорошую производительность. На скромном железе потребуется больше времени для генерации ответов.

Энтузиаст произвел сравнение трех процессоров: Эльбрус 8СВ, Эльбрус 16С и Ryzen 7 5800H. Алексей использовал llama.cpp и веса alpaca-7B.
Затем собрал с параметрами -O4 -ffast-math и -O3 на Эльбрусе и Ryzen.
Также на Эльбрус 8СВ добавил
-ftune=elbrus-8c2,
а на Эльбрус 16С
-ftune=elbrus-16c.

Тест скорости проводился следующей командой, которая была предложена пользователем rPman на Хабре.

for a in {1..8};do printf "%s;" $a;./main -t $a -m ./models/ggml-alpaca-7b-q4.bin -s 42 -p "Random joke:" -n 32 2>&1 |grep "llama_print_timings:       eval time" | cut -d "(" -f 2 | grep -o -e "[0-9\.]*" ;done

В первом тесте все три процессора запускались на 8 потоках.

Потоки Ryzen 7 5800H 3200MHz (ms) Эльбрус-8СВ 1500MHz (ms) Эльбрус-16С 2000MHz (ms)
1 716,04 2708,62 2389,05
2 391,81 1379,05 1225,16
3 271,67 935,71 823,20
4 216,83 714,14 638,50
5 171,64 580,71 513,72
6 147,36 491,13 438,66
7 129,04 427,02 380,11
8 123,06 379,25 342,84

Ниже представлен график производительности(Меньше - лучше).


График сравнения(Меньше - лучше)

Так же при помощи энтузиаста entityfx были произведены тесты бенчмарка GGML.


Однопоточный тест

1 поток FLOPS_per_u_Second
Эльбрус 4С 750 МГц 735.60
Эльбрус 8С 1300 МГц 3455.45
Эльбрус 8СВ 1550 МГц 7202.17
Эльбрус 16С 2000 МГц 10761.69
Core i7 2600K 3400 МГц 14224.27
Intel Core i5 8250U 2000..3400 МГц 27306.49
Байкал-М 1500 МГц 3307.45
Ryzen 7 1700X 3400..3800 МГц 18888.65

Многопоточный тест

8 потоков FLOPS_per_u_Second
Эльбрус 4С 750 МГц (4 потока) 2858.15
Эльбрус 8С 1300 МГц 26892.26
Эльбрус 8СВ 1550 МГц 55424.05
Эльбрус 16С 2000 МГц 82397.41
Core i7 2600K 3400 МГц 40267.38
Intel Core i5 8250U 2000..3400 МГц 111165.17
Байкал-М 1500 МГц 24025.62
Ryzen 7 1700X 3400..3800 МГц 11718.20

Так же Алексей Михайлюк уточняет что на момент тестов оптимизации кода под Эльбрус не проводилось.

Комментариев еще нетКомментарии могут оставлять только авторизованные пользователи
Онлайн компилятор e2k Онлайн компилятор e2k

Вы можете изучать предупреждения, ошибки и ассемблерный код, выдаваемые компилятором, а также просматривать результат выполнения скомпилированной программы для архитектуры Эльбрус(E2K). Поддерживаются языки, C++, Fortran, Rust.

Доступ к серверам Эльбрус Доступ к серверам Эльбрус

К серверам на процессорах архитектуры Эльбрус открылся бесплатный удаленный доступ, которым вы можете воспользоваться и возможно портировать что то полезное.

Руководство по эффективному программированию на e2k

Данное руководство содержит основные материалы для обучения эффективному программированию на платформе Эльбрус и применимо на любом варианте Linux-подобной операционной системы.

Телеграмм канал Эльбрус

Чат про администрирование и создание программ на платформе Эльбрус(E2K).